package com.atguigu.lease.model.enums;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonValue;


public enum ItemType implements BaseEnum {

    APARTMENT(1, "公寓"),

    ROOM(2, "房间");

    /*MybatisPlus提供了一个通用的处理枚举类型的TypeHandler。其使用十分简单，
    只需在ItemType枚举类的code属性上增加一个注解@EnumValue，Mybatis-Plus
    便可完成从ItemType对象到code属性之间的相互映射*/
    @EnumValue
    /*HttpMessageConverter依赖于Json序列化框架（默认使用Jackson）。其对
    枚举类型的默认处理规则也是枚举对象实例（ItemType.APARTMENT）和实例名称
    （"APARTMENT"）相互映射。不过其提供了一个注解@JsonValue，同样只需在
    ItemType枚举类的code属性上增加一个注解@JsonValue，Jackson便可完成从
    ItemType对象到code属性之间的互相映射*/
    @JsonValue
    private Integer code;
    private String name;

    @Override
    public Integer getCode() {
        return this.code;
    }


    @Override
    public String getName() {
        return name;
    }

    ItemType(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

}
